// Cowing, Hawkins, Pugh
// Project 2C
// BattleManager.h

#ifndef BATTLE_MANAGER_H
#define BATTLE_MANAGER_H

#include "character.h"

enum AttackResult{MISS, HIT, CRITICAL_HIT};
enum CombatResult{MONSTER_DEAD, PLAYER_DEAD, MONSTER_SCARED, PLAYER_ESCAPED};

class Monster{
  public:
    int	    strength;
    int	    dexterity;
    int	    constitution;
    int     wisdom;
    int	    charisma;
    int	    minimum_damage;
    int	    maximum_damage;
    int	    critical_minimum;
    int	    critical_multiplier;
    int	    armor_bonus;
    int	    armor_penalty;
    int	    maximum_dexterity;
    int	    base_attack_bonus;
    int     hit_points;
    string  name;
    string  armor_name;
    string  weapon_name;
};

class BattleManager{
  public:
      /*CSTR*/		BattleManager(Character& /*player*/);
	  /*DESTRUCT*/	~BattleManager();
      void          LoadMonsters();
	  void			DispStats();
      int           genRandNum();
      int           rollDie();
      AttackResult  attack(bool, bool);
	  CombatResult	fight();

  private:
	int				numof_monsters;
	Monster			monster;
	Monster* 		mMonsterList;
	Character* 		cPlayer;
	bool			firstRound;
	AttackResult	result; 
	
	// short name copies of cPlayer params.
	int		P_MinDam;
	int		P_MaxDam;
	int		P_CritMult;
	int		P_CritMin;
	int		P_StrMod;	
	
};
#endif